home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / lcppb.zip / LCPPLIB.ZIP / WINDOW.H < prev    next >
C/C++ Source or Header  |  1991-07-08  |  3KB  |  91 lines

  1. // window.h -- Header for window.cpp
  2.  
  3. #ifndef __window_H
  4. #define __window_H      1     // Prevent multiple #includes
  5.  
  6. #include <stdlib.h>
  7. #include "stritem.h"
  8. #include "item.h"
  9.  
  10. /* -- window information structure */
  11.  
  12. struct winStruct {
  13.   int row;             // Absolute row of top left corner
  14.   int col;             // Absolute column of top left corner
  15.   int width;           // Width of border
  16.   int height;          // Height of border
  17.   unsigned wtattr;     // window normal text attribute
  18.   unsigned wbattr;     // window border attribute
  19.   unsigned whattr;     // window highlight text attribute
  20.   int wtype;           // Border type (0 ... 4)
  21. };
  22.  
  23. /* -- cwindow class */
  24.  
  25. class cwindow: public item {
  26.   private:
  27.  
  28.   // -- Static data field (shared by all objects of class)
  29.     static int dispInitialized;  // True == display initialized
  30.  
  31.   // -- Private data fields
  32.     int wbr;             // window bottom row
  33.     int wrc;             // window right column
  34.     int cr, cc;          // Logical cursor row, cursor column
  35.     unsigned wca;        // window current attribute
  36.     strItem *wtitle;     // Pointer to window title strItem
  37.     unsigned *save;      // If NULL, text behind not saved
  38.  
  39.   // -- Protected data fields
  40.   protected:
  41.     int isOpen;          // True if window is visible
  42.     winStruct ws;        // Location, size, attributes
  43.  
  44.   // -- Private member functions
  45.   private:
  46.     unsigned *saveBuf(void);
  47.     void commonInits(void);
  48.     void showOutline(void);
  49.  
  50.   public:
  51.  
  52.   // -- Static member functions
  53.     static void startup(void);
  54.     static void shutDown(void);
  55.  
  56.   // -- Constructors and destructors
  57.     cwindow();
  58.     cwindow(winStruct &ws, const char *title);
  59.     ~cwindow();
  60.  
  61.   // -- Inline member functions
  62.     winStruct &getInfo()
  63.         { return ws; }
  64.     void reverseVideo(void)
  65.         { wca = ws.whattr; }
  66.     void normalVideo(void)
  67.         { wca = ws.wtattr; }
  68.  
  69.   // -- Other member functions
  70.     void showWindow();
  71.     void hideWindow();
  72.     void setTitle(const char *s);
  73.     void setInfo(winStruct &ws);
  74.     void gotorc(int row, int col);
  75.     void puts(char *s);
  76.     void scrollUp(int nrows);
  77.     void scrollDown(int nrows);
  78.     void eeol(void);
  79.     void eeow(void);
  80. };
  81.  
  82. #endif   // __window_H
  83.  
  84.  
  85. // Copyright (c) 1990 by Tom Swan. All rights reserved
  86. // Revision 1.00    Date: 09/22/1990   Time: 11:47 am
  87.  
  88. // Revision 1.01    Date: 07/08/1991   Time: 05:41 pm
  89. // Converted for Borland C++ 2.0
  90.  
  91.